package com.hyts.rxjava.bus.publish;

import rx.Observable;
import rx.Subscription;
import rx.functions.Action1;

import java.util.List;

/**
 * project-name:coffice-toolbox
 * package-name:com.hyts.rxjava.reactive
 * author:Libo/Alex
 * create-date:2019-06-27 17:22
 * email:liboware@gmail.com
 * description:此类主要用于:观察者模式->事件服务 == rx.Observable
 */
public interface Publisher<T> {

    /**
     * 注册服务操作-注册监听者或者观察者
     * @param subject
     * @return
     */
    Observable<T> publish(T subject);

    /**
     * 注册服务操作-注册监听者或者观察者
     * @param subjects
     * @return
     */
    Observable<T> publish(T... subjects);

    /**
     * 注册服务操作-注册监听者或者观察者
     * @param subjects
     * @return
     */
    Observable<T> publish(List<T> subjects);

}
